{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "##REad the dataset\n",
    "df=pd.read_csv('height-weight.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Weight</th>\n",
       "      <th>Height</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>45</td>\n",
       "      <td>120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>58</td>\n",
       "      <td>135</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>48</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60</td>\n",
       "      <td>145</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>70</td>\n",
       "      <td>160</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Weight  Height\n",
       "0      45     120\n",
       "1      58     135\n",
       "2      48     123\n",
       "3      60     145\n",
       "4      70     160"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Height')"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAYTElEQVR4nO3df5CdV33f8fcH2RiZQESQSNDargVji/oHWGTjYHtCTUIrh6FYdROQJzRMSXGSmjgmiSkqFCdtPHYiwKUQaFxwHZog42Qc1YGCDHiKC43xrCMTyQYVDQasFbUWXNkkUVVbfPvHffbqWr6r3ZX2/tp9v2Y0uvc8z937PSvgw3Oe55yTqkKSJIBnDLoASdLwMBQkSW2GgiSpzVCQJLUZCpKkthMGXcDxWLlyZZ1++umDLkOSRsp999333apa1e3YSIfC6aefzsTExKDLkKSRkuRbMx1z+EiS1GYoSJLaDAVJUpuhIElqMxQkSW0j/fSRJA2Trdsn2bxtF3v3H2D1iuVcs34tG9aNDbqseTEUJGkBbN0+yabbd3DgiUMATO4/wKbbdwCMVDA4fCRJC2Dztl3tQJh24IlDbN62a0AVHRuvFCQteu/auoMtX36YQ1UsS7j8J0/ldzecu6DfsXf/gXm1DyuvFCQtau/auoM/vufbHGo2FDtUxR/f823etXXHgn7P6hXL59U+rAwFSYvali8/PK/2Y3XN+rUsP3HZU9qWn7iMa9avXdDv6TWHjyQtaodm2HJ4pvZjNX0z2aePJGmILUu6BsCyZMG/a8O6sZELgSM5fCRpUbv8J0+dV/tS17NQSHJzkn1Jdna0nZfkniT3J5lIcn7HsU1JdifZlWR9r+qStLT87oZzeeMrTmtfGSxLeOMrTlvwp48Wi9QCj6u1f3DySuBvgI9V1TlN253AjVX16SSvAd5eVRcnOQvYApwPrAY+B5xZVYdm+PEAjI+Pl/spSNL8JLmvqsa7HevZlUJV3Q08emQz8Nzm9Q8De5vXlwK3VtXBqnoI2E0rICRJfdTvG81XA9uSvIdWIF3YtI8B93Sct6dpkyT1Ub9vNP8q8LaqOhV4G/DRpr3bYwBdx7WSXNHcj5iYmprqUZmStDT1OxTeBNzevP5TDg8R7QE6HwU4hcNDS09RVTdV1XhVja9a1XXfaUnSMep3KOwF/kHz+qeBrzev7wA2JjkpyRrgDODePtcmSUtez+4pJNkCXAysTLIHuBZ4C/D+JCcA/xe4AqCqHkhyG/Ag8CRw5WxPHkmSFl7PQqGqLp/h0I/PcP51wHW9qkeSNDtnNEuS2lz7SBoii2E7R402Q0EaEotlO0eNNoePpCGxWLZz1GjzSkEaEr3YztHhKM2XVwrSkFjo7Rynh6Mm9x+gODwctXX75HFUqcXOUJCGxEJv5+hwlI6Fw0fSkFjo7Rx7MRzVCw5xzU+vf1+GgjREFnI7x9UrljPZJQCOdTiqF3zian768fty+EhapBZ6OKoXHOKan378vrxSkBaphR6O6oVRGeIaFv34fRkK0iK2kMNRvTAKQ1zDpB+/L4ePJA3MKAxxDZN+/L68UpA0MKMwxDVM+vH7SlXXXS9Hwvj4eE1MTAy6DEkaKUnuq6rxbsccPpIktRkKkqQ2Q0GS1GYoSJLaDAVJUpuhIElqMxQkSW2GgiSprWczmpPcDLwW2FdV5zRtnwCm52OvAPZX1XnNsU3ALwGHgKuqaluvapOG1TDtLTBMtah/ernMxS3AB4GPTTdU1RumXyd5L/BY8/osYCNwNrAa+FySM6vqqWvESovYMO0tMEy1qL96NnxUVXcDj3Y7liTA64EtTdOlwK1VdbCqHgJ2A+f3qjZpGA3T3gLDVIv6a1D3FH4KeKSqvt68HwMe7ji+p2l7miRXJJlIMjE1NdXjMqX+Gaa9BYapFvXXoELhcg5fJQCkyzldV+qrqpuqaryqxletWtWT4qRBmGlN/EHsLTBMtai/+h4KSU4ALgM+0dG8Bzi14/0pwN5+1iUN2jDtLTBMtai/BnGl8Grga1W1p6PtDmBjkpOSrAHOAO4dQG3SwGxYN8b1l53L2IrlBBhbsZzrLzt3IDd2h6kW9VfP9lNIsgW4GFgJPAJcW1UfTXILcE9V/ccjzn8n8GbgSeDqqvr0bN/hfgqSNH9H20/BTXYkaYk5Wii4Haek4+ZEt8XDUJB0XJzotri49pGk4+JEt8XFUJB0XJzotrgYCpKOixPdFhdDQdJxcaLb4uKNZknHZfpmsk8fLQ6GgqTjtmHdmCGwSDh8JElqMxQkSW2GgiSpzVCQJLUZCpKkNp8+kkaQC9CpVwwFacS4AJ16yeEjacS4AJ16ySsFaYjMZVjIBejUS14pSENielhocv8BisPDQlu3Tz7lPBegUy8ZCtKQmOuwkAvQqZccPpKGxFyHhVyATr1kKEhDYvWK5Ux2CYZuw0IuQKdecfhIGhIOC2kY9CwUktycZF+SnUe0/1qSXUkeSPL7He2bkuxujq3vVV1aurZun+SiG+5izTs+xUU33PW0G7iDtmHdGNdfdi5jK5YTYGzFcq6/7FyvCNRXvRw+ugX4IPCx6YYkrwIuBV5aVQeTvKBpPwvYCJwNrAY+l+TMqjr0tJ8qHYNRmfDlsJAGrWdXClV1N/DoEc2/CtxQVQebc/Y17ZcCt1bVwap6CNgNnN+r2rT0OOFLmpt+31M4E/ipJF9O8oUkP9G0jwEPd5y3p2l7miRXJJlIMjE1NdXjcrVYOOFLmpt+P310AvA84BXATwC3JXkRkC7nVrcfUFU3ATcBjI+Pdz1Ho6fXC7zN58keaSnr95XCHuD2arkX+AGwsmk/teO8U4C9fa5NAzLXmbzHwyd7pLnpdyhsBX4aIMmZwDOB7wJ3ABuTnJRkDXAGcG+fa9OA9GO83yd7pLnp2fBRki3AxcDKJHuAa4GbgZubx1T/H/CmqirggSS3AQ8CTwJX+uTR0tGv8X6f7JFm17NQqKrLZzj0xhnOvw64rlf1aHg53i8ND2c0a+Ac75eGh2sfaeBc4E0aHoaChoLj/dJwcPhIktRmKEiS2gwFSVKboSBJaptTKCT5/FzaJEmj7ahPHyV5FnAyrVnJz+PwwnXPpbXvgSRpEZntkdRfBq6mFQD3cTgUHgf+oHdlSZIG4aihUFXvB96f5Neq6gN9qkmSNCBzmrxWVR9IciFweudnqupjM35IkjRy5hQKSf4L8GLgfmB69dKiY/9lSdLom+syF+PAWc0y15KkRWqu8xR2Aj/Wy0IkSYM32yOpf0FrmOg5wINJ7gUOTh+vqtf1tjxJUj/NNnz0nr5UIUkaCrM9kvqFfhUiSRq8uT599H1aw0idHgMmgN+sqm8sdGGSpP6b69NH7wP2Ah+nNat5I60bz7uAm4GLe1GcJKm/5vr00SVV9YdV9f2qeryqbgJeU1WfAJ7Xw/okSX0011D4QZLXJ3lG8+f1HcecuyBJi8RcQ+EXgH8G7AMeaV6/Mcly4K09qk2S1GdzXfvoG8A/nuHwF7s1JrkZeC2wr6rOadp+G3gLMNWc9q+r6r81xzYBv0RrGY2rqmrbHPsgDb2t2yfZvG0Xe/cfYPWK5Vyzfi0b1o0NuizpaWabvPb2qvr9JB+gyzBRVV11lI/fAnyQp6+PdGNVPWX+Q5KzaN28PpvWMt2fS3JmVR1CGnFbt0+y6fYdHHii9R/nyf0H2HT7DgCDQUNntiuFrzZ/T8z3B1fV3UlOn+PplwK3VtVB4KEku4Hzgb+c7/dKw2bztl3tQJh24IlDbN62y1DQ0Jlt8tpfNH//EUCSZ1fV3x7nd741yS9yeI7D/wHGgHs6ztnTtD1NkiuAKwBOO+204yxF6r29+w/Mq10apLnu0XxBkgdprhySvCzJh47h+z5Mawnu84DvAO+d/oou53Z9qqmqbqqq8aoaX7Vq1TGUIPXX6hXL59UuDdJcnz7698B64HsAVfUV4JXz/bKqeqSqDlXVD4D/RGuICFpXBqd2nHoKrcly0si7Zv1alp+47Clty09cxjXr1w6oImlmcw0FqurhI5rmfRM4yQs73v4TWktyA9wBbExyUpI1wBnAvfP9+dIw2rBujOsvO5exFcsJMLZiOddfdq73EzSU5rrMxcPNdpyV5JnAVRy+Cd1Vki20lr9YmWQPcC1wcZLzaA0NfRP4ZYCqeiDJbcCDwJPAlT55pMVkw7oxQ0AjIXPZTC3JSuD9wKtpjf/fCfx6VX2vt+Ud3fj4eE1MzPvBKEla0pLcV1Xj3Y7NdfLad2nNapYkLWKzTV7rOmlt2iyT1yRJI2a2K4XOsZnfoXVfQJK0SM02ee2Ppl8nubrzvSRp8ZnzI6m4RLYkLXrzCQVJ0iI3243mzr2ZT07y+PQhoKrqub0sTsPBZZ+lpWO2ewrP6VchGk4u+ywtLQ4f6aiOtuyzpMXHUNBRueyztLQYCjoql32WlhZDQUflss/S0jLXVVK1RE3fTPbpI2lpMBQ0K5d9lpYOh48kSW2GgiSpzVCQJLUZCpKkNkNBktRmKEiS2gwFSVKboSBJautZKCS5Ocm+JDu7HPutJJVkZUfbpiS7k+xKsr5XdfXL1u2TXHTDXax5x6e46Ia72Lp9ctAlSdKsenmlcAtwyZGNSU4F/iHw7Y62s4CNwNnNZz6UZNmRnx0V03sQTO4/QHF4DwKDQdKw61koVNXdwKNdDt0IvJ2n7vl8KXBrVR2sqoeA3cD5vaqt19yDQNKo6us9hSSvAyar6itHHBoDHu54v6dp6/YzrkgykWRiamqqR5UeH/cgkDSq+hYKSU4G3gm8u9vhLm3VpY2quqmqxqtqfNWqVQtZ4oJxDwJJo6qfVwovBtYAX0nyTeAU4K+S/BitK4NTO849Bdjbx9oWlHsQSBpVfVs6u6p2AC+Yft8Ew3hVfTfJHcDHk7wPWA2cAdzbr9oWmnsQSBpVPQuFJFuAi4GVSfYA11bVR7udW1UPJLkNeBB4Eriyqg51O3dUuAeBpFHUs1CoqstnOX76Ee+vA67rVT2SpNk5o1mS1GYoSJLaDAVJUpuhIElqMxQkSW2GgiSpzVCQJLX1bUazhsvW7ZPOuJb0NIbCEjS938P08t7T+z0ABoO0xDl8tAS534OkmRgKS5D7PUiaiaGwBLnfg6SZGApLkPs9SJqJN5qXIPd7kDQTQ2GJcr8HSd04fCRJajMUJElthoIkqc1QkCS1GQqSpDZDQZLUZihIktp6FgpJbk6yL8nOjrZ/l+Svk9yf5M4kqzuObUqyO8muJOt7VZckaWa9vFK4BbjkiLbNVfXSqjoP+CTwboAkZwEbgbObz3woyTIkSX3Vs1CoqruBR49oe7zj7bOBal5fCtxaVQer6iFgN3B+r2qTJHXX92UuklwH/CLwGPCqpnkMuKfjtD1NmySpj/p+o7mq3llVpwJ/Ary1aU63U7t9PskVSSaSTExNTfWqTElakgb59NHHgX/avN4DnNpx7BRgb7cPVdVNVTVeVeOrVq3qcYmStLT0NRSSnNHx9nXA15rXdwAbk5yUZA1wBnBvP2uTJPXwnkKSLcDFwMoke4BrgdckWQv8APgW8CsAVfVAktuAB4EngSur6lDXHyxJ6plUdR26Hwnj4+M1MTEx6DIkaaQkua+qxrsdc0azJKnNUJAktRkKkqQ2Q0GS1GYoSJLaDAVJUpuhIElqMxQkSW2GgiSpzVCQJLUZCpKkNkNBktRmKEiS2gwFSVJb3/doHnVbt0+yedsu9u4/wOoVy7lm/Vo2rHM7aUmLg6EwD1u3T7Lp9h0ceKK1/8/k/gNsun0HgMEgaVFw+GgeNm/b1Q6EaQeeOMTmbbsGVJEkLSxDYR727j8wr3ZJGjWGwjysXrF8Xu2SNGoMhXm4Zv1alp+47Clty09cxjXr1w6oIklaWN5onofpm8k+fSRpsTIU5mnDujFDQNKi5fCRJKmtZ6GQ5OYk+5Ls7GjbnORrSf46yZ8nWdFxbFOS3Ul2JVnfq7qgNd/gohvuYs07PsVFN9zF1u2Tvfw6SRoZvbxSuAW45Ii2zwLnVNVLgf8FbAJIchawETi7+cyHkiyjB6YnoE3uP0BxeAKawSBJPQyFqrobePSItjur6snm7T3AKc3rS4Fbq+pgVT0E7AbO70VdTkCTpJkN8p7Cm4FPN6/HgIc7ju1p2p4myRVJJpJMTE1NzftLnYAmSTMbSCgkeSfwJPAn001dTqtun62qm6pqvKrGV61aNe/vdgKaJM2s76GQ5E3Aa4FfqKrp/+HfA5zacdopwN5efL8T0CRpZn0NhSSXAP8KeF1V/V3HoTuAjUlOSrIGOAO4txc1bFg3xvWXncvYiuUEGFuxnOsvO9e5B5JEDyevJdkCXAysTLIHuJbW00YnAZ9NAnBPVf1KVT2Q5DbgQVrDSldW1aHuP/n4OQFNkrrL4RGc0TM+Pl4TExODLkOSRkqS+6pqvNsxZzRLktoMBUlSm6EgSWozFCRJbSN9oznJFPCtQdcxi5XAdwddxAJZLH1ZLP0A+zKshr0vf6+qus7+HelQGAVJJma6yz9qFktfFks/wL4Mq1Hui8NHkqQ2Q0GS1GYo9N5Ngy5gAS2WviyWfoB9GVYj2xfvKUiS2rxSkCS1GQqSpDZDYQEl+WaSHUnuTzLRtP1Iks8m+Xrz9/MGXedcJFmR5M+SfC3JV5NcMIp9SbK2+feY/vN4kqtHtC9vS/JAkp1JtiR51ij2AyDJrzf9eCDJ1U3bSPQlyc1J9iXZ2dE2Y+1JNiXZnWRXkvWDqXruDIWF96qqOq/jGeV3AJ+vqjOAzzfvR8H7gc9U1UuAlwFfZQT7UlW7mn+P84AfB/4O+HNGrC9JxoCrgPGqOgdYBmxkxPoBkOQc4C209mF/GfDaJGcwOn25BbjkiLautSc5i9a/09nNZz6UZBnDrKr8s0B/gG8CK49o2wW8sHn9QmDXoOucQz+eCzxE8yDCKPfliPr/EfClUewLh/cx/xFa+6B8sunPSPWjqfPngY90vP83wNtHqS/A6cDOjvdda6e1h8ymjvO2ARcMuv6j/fFKYWEVcGeS+5Jc0bT9aFV9B6D5+wUDq27uXgRMAf85yfYkH0nybEazL502Alua1yPVl6qaBN4DfBv4DvBYVd3JiPWjsRN4ZZLnJzkZeA2t7XhHsS/TZqp9Osyn7WnahpahsLAuqqqXAz8LXJnklYMu6BidALwc+HBVrQP+luG9lJ+TJM8EXgf86aBrORbNGPWlwBpgNfDsJG8cbFXHpqq+Cvwe8FngM8BXaO24uBilS9tQzwMwFBZQVe1t/t5Ha9z6fOCRJC8EaP7eN7gK52wPsKeqvty8/zNaITGKfZn2s8BfVdUjzftR68urgYeqaqqqngBuBy5k9PoBQFV9tKpeXlWvBB4Fvs6I9qUxU+17aF0FTTsF2Nvn2ubFUFggSZ6d5DnTr2mN9+4E7gDe1Jz2JuC/DqbCuauq/w08nGRt0/QztPbPHrm+dLicw0NHMHp9+TbwiiQnp7XB+c/Quvk/av0AIMkLmr9PAy6j9W8zkn1pzFT7HcDGJCclWQOcAdw7gPrmzBnNCyTJi2hdHUBr+OXjVXVdkucDtwGn0fov9s9X1aMDKnPOkpwHfAR4JvAN4J/T+j8Ro9iXk2mN676oqh5r2kbu3yXJ7wBvoDXUsh34F8APMWL9AEjyP4DnA08Av1FVnx+Vf5MkW4CLaS2P/QhwLbCVGWpP8k7gzbT+3a6uqk/3v+q5MxQkSW0OH0mS2gwFSVKboSBJajMUJElthoIkqc1QkLpIcuP06p3N+21JPtLx/r1JfmOGz/7bJK+e5ef/dpLf6tK+Ism/PI7SpeNiKEjd/U9aM4ZJ8gxaz6Sf3XH8QuBL3T5YVe+uqs8d4/euAAwFDYyhIHX3JZpQoBUGO4HvJ3lekpOAvw+Q5AvNAojbOpY5uCXJzzWvX9PsSfHFJP8hySc7vuOsJP89yTeSXNW03QC8uNn7YXM/Oip1OmHQBUjDqKr2JnmyWYbhQuAvaa1ueQHwGK0lJm4ELq2qqSRvAK6jNXMVgCTPAv4QeGVVPdTMhO30EuBVwHOAXUk+TGvhwXOqtf+D1HeGgjSz6auFC4H30QqFC2mFwiSt9a0+21qKiGW0lrTu9BLgG1X1UPN+C3BFx/FPVdVB4GCSfcCP9qgf0pwZCtLMpu8rnEtr+Ohh4DeBx4G7gLGquuAon++2bHKngx2vD+F/HzUEvKcgzexLwGuBR6vqULPA2QpaQ0ifAFYluQAgyYlJzj7i818DXpTk9Ob9G+bwnd+nNZwkDYShIM1sB62nju45ou2xZs+MnwN+L8lXgPs5fGMagKo6QOtJos8k+SKtFTUfO9oXVtX3gC81m9p7o1l95yqpUg8l+aGq+ptmD4Q/AL5eVTcOui5pJl4pSL31liT3Aw8AP0zraSRpaHmlIElq80pBktRmKEiS2gwFSVKboSBJajMUJElt/x9dfFTT1XOY0QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(df['Weight'],df['Height'])\n",
    "plt.xlabel(\"Weight\")\n",
    "plt.ylabel(\"Height\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "##divide our dataset into independent and dependent features\n",
    "X=df['Weight']\n",
    "y=df['Height']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.20,random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8     182\n",
       "5     162\n",
       "11    182\n",
       "3     145\n",
       "18    150\n",
       "16    140\n",
       "13    183\n",
       "2     123\n",
       "9     170\n",
       "19    167\n",
       "4     160\n",
       "12    175\n",
       "7     175\n",
       "10    176\n",
       "14    170\n",
       "6     163\n",
       "Name: Height, dtype: int64"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     120\n",
       "17    159\n",
       "15    177\n",
       "1     135\n",
       "Name: Height, dtype: int64"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Standardize the dataset\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "scaler=StandardScaler()\n",
    "X_train=scaler.fit_transform(X_train)\n",
    "X_test=scaler.transform(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x21ec46100d0>"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "regressor=LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "numpy.ndarray"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train=np.array(X_train).reshape(-1,1)\n",
    "X_test=np.array(X_test).reshape(-1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(16,)"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regressor.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient :  [15.14687925]\n",
      "Intercept :  163.9375\n"
     ]
    }
   ],
   "source": [
    "## coefficient and intercepts\n",
    "print(\"Coefficient : \",regressor.coef_)\n",
    "print(\"Intercept : \",regressor.intercept_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x21ec6065520>]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X_train,y_train)\n",
    "plt.plot(X_train,regressor.predict(X_train))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### prediction of train data\n",
    "1. predicted height output= intercept +coef_(Weights)\n",
    "2. y_pred_train =65.4364 + 1.26(X_train)\n",
    "          \n",
    "### prediction of test data\n",
    "1. predicted height output= intercept +coef_(Weights)\n",
    "2. y_pred_test =65.4364 + 1.26(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_test=regressor.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     120\n",
       "17    159\n",
       "15    177\n",
       "1     135\n",
       "Name: Height, dtype: int64"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x21ec5e6d550>]"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X_test,y_test)\n",
    "plt.plot(X_test,regressor.predict(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "### Performance metrics\n",
    "\n",
    "from sklearn.metrics import mean_squared_error,mean_absolute_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "122.95263204287963\n",
      "10.788901165891936\n",
      "11.088400788340925\n"
     ]
    }
   ],
   "source": [
    "mse=mean_squared_error(y_test,y_pred_test)\n",
    "mae=mean_absolute_error(y_test,y_pred_test)\n",
    "rmse=np.sqrt(mse)\n",
    "print(mse)\n",
    "print(mae)\n",
    "print(rmse)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import r2_score\n",
    "score=r2_score(y_test,y_pred_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7431463490421629\n"
     ]
    }
   ],
   "source": [
    "print(score)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## R square \n",
    "Formula\n",
    "\n",
    "**R^2 = 1 - SSR/SST**\n",
    "\n",
    "\n",
    "R^2\t=\tcoefficient of determination\n",
    "SSR\t=\tsum of squares of residuals\n",
    "SST\t=\ttotal sum of squares"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7431463490421629\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import r2_score\n",
    "score=r2_score(y_test,y_pred_test)\n",
    "print(score)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Adjusted R2 = 1 – [(1-R2)*(n-1)/(n-k-1)]**\n",
    "\n",
    "where:\n",
    "\n",
    "R2: The R2 of the model\n",
    "n: The number of observations\n",
    "k: The number of predictor variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6147195235632443"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#display adjusted R-squared\n",
    "1 - (1-score)*(len(y_test)-1)/(len(y_test)-X_test.shape[1]-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([159.26608245])"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regressor.predict(scaler.transform([[75]]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x21ec5df5e80>"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Assumptions\n",
    "\n",
    "## plot a scatter plot for the prediction\n",
    "plt.scatter(y_test,y_pred_test)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    -10.882786\n",
       "17     9.195016\n",
       "15    14.895588\n",
       "1     -8.182214\n",
       "Name: Height, dtype: float64"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## Residuals\n",
    "residuals=y_test-y_pred_test\n",
    "\n",
    "residuals\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x21ec5ede490>"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Plot this residuals \n",
    "import seaborn as sns\n",
    "sns.displot(residuals,kind=\"kde\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x21ec661ac70>"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Scatter plot with respect to prediction and residuals\n",
    "## uniform distribution\n",
    "plt.scatter(y_pred_test,residuals)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using OLS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "import statsmodels.api as sm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = sm.OLS(y_train, X_train).fit()\n",
    "predictions = model.predict(X_test) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                 OLS Regression Results                                \n",
      "=======================================================================================\n",
      "Dep. Variable:                 Height   R-squared (uncentered):                   0.008\n",
      "Model:                            OLS   Adj. R-squared (uncentered):             -0.058\n",
      "Method:                 Least Squares   F-statistic:                             0.1279\n",
      "Date:                Mon, 01 Aug 2022   Prob (F-statistic):                       0.726\n",
      "Time:                        16:01:23   Log-Likelihood:                         -104.31\n",
      "No. Observations:                  16   AIC:                                      210.6\n",
      "Df Residuals:                      15   BIC:                                      211.4\n",
      "Df Model:                           1                                                  \n",
      "Covariance Type:            nonrobust                                                  \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "x1            15.1469     42.360      0.358      0.726     -75.141     105.435\n",
      "==============================================================================\n",
      "Omnibus:                        1.544   Durbin-Watson:                   0.004\n",
      "Prob(Omnibus):                  0.462   Jarque-Bera (JB):                1.122\n",
      "Skew:                          -0.612   Prob(JB):                        0.571\n",
      "Kurtosis:                       2.573   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] R² is computed without centering (uncentered) since the model does not contain a constant.\n",
      "[2] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\win10\\anaconda3\\lib\\site-packages\\scipy\\stats\\stats.py:1603: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=16\n",
      "  warnings.warn(\"kurtosistest only valid for n>=20 ... continuing \"\n"
     ]
    }
   ],
   "source": [
    "print(model.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([15.14687925])"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "regressor.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
